
今天是 Copilot Studio 實作第 21 天,筆者要來做一個看起來很普通、實務上卻非常實用的功能: 讓使用者先從選單選功能,再依照選項切換到不同 Topic。建立一個名為 Menu 的 Topic,當使用者輸入 menu 或 function list 時觸發,接著顯示兩個選項: Query Weather 與 User Registration。
🎯 這個功能的核心觀念
筆者不是直接把所有邏輯塞在同一個 Topic 裡,而是讓 Menu Topic 負責「分流」, 每個功能則交給自己的 Topic 處理。這樣未來要新增功能,只要增加選項與對應分支, 不必把整個 Agent 攪成一鍋看不懂的麵線。
簡單講就是:Menu 負責導航,其他 Topic 負責辦事。分工清楚,日後才不會維護到懷疑人生。

🛠️ 第一步:建立一個新的 Menu Topic
筆者先進入 Copilot Studio 的 Topics,從空白開始新增一個 Topic。 觸發條件設定成 menu 和 function list,讓使用者可以用比較自然的方式叫出功能選單。

📝 第二步:使用 Ask a question 建立選單
Topic 建好之後,筆者加入 Ask a question 節點,讓 Agent 問使用者想做哪一件事。 這裡不是單純請使用者輸入文字,而是選擇 Multiple choice options, 直接建立兩個按鈕,降低使用者輸入錯誤的機會。
筆者先把問題內容設定成類似「We provide below services」,接著加入:
Query Weather
User Registration

使用者在右側測試區就會直接看到選項按鈕。這種體驗比叫使用者自己輸入 weather 或 register 友善很多。
🧮 第三步:把使用者選項存進變數
當選項建立完成後,Copilot Studio 會讓筆者把使用者的回答儲存成變數。 我這裡將它命名為 VarOption,資料型別則保留選擇結果。

這個變數很重要,因為後面的 Condition 要靠它來判斷使用者到底選了哪一個功能。
🔀 第四步:用 Condition 對應不同功能
選項建立完成後,Copilot Studio 居然會自動幫筆者切出 Condition 分支, 這點算是相當方便。每一個選項會對應一個條件,例如:
VarOption 等於 Query Weather
VarOption 等於 User Registration
其他未符合的情況

這個做法的好處是,每個 Topic 都能保持單純。天氣查詢就處理地點、日期與天氣 API; 使用者註冊就處理姓名、Email 或其他欄位,不需要全部擠在 Menu 裡。
🧩 All other conditions 要去哪裡?
筆者在「其他條件」分支裡使用 Go to step,讓流程回到前面再次詢問使用者。 這相當於一個簡單的重試機制,避免使用者選不到正確項目時,Agent 直接斷線或進入奇怪的流程。

更多實作細節,請參考完整版影片囉
🏁 本日結論:先分流,再辦事,Agent 才不會迷路
今天筆者完成了 Copilot Studio 的選單式分流流程:先用 Ask a question 顯示選項, 再把回答存到變數,接著用 Condition 判斷,最後透過 Go to another topic 切換到不同功能。
這種設計不算花俏,卻是打造可維護 Agent 的基本功。功能少時可能覺得直接寫在一起比較快, 但當 Topic 越來越多,沒有分流架構就會變成一團義大利麵,最後連自己都不敢碰。![]()